19372
15318
Joten minulla on vaikeuksia selvittää luettelon :: sort () asianmukainen käyttö osaluettelon suhteen. Tässä on asianmukainen koodi:
jäsennelty opiskelija
{
char firstnm [20],
lastnm [20];
int id,
arvosana;
};
luettelo  sList;
// Merkityksetön koodi ...
cout << "Anna oma nimesi, tunnuksesi ja arvosanasi. (Esim .: myfirst mylast 0 12) \ n";
cin >> data.firstnm >> data.lastnm >> data.id >> data.grade;
sList.push_back (data);
sList.sort ();
Ongelma, jota yritän ratkaista, on käyttää sList.sort () -tunnistetta lajittelemaan tunnuksen mukaan. Minulla ei kuitenkaan ole aavistustakaan, kuinka siirtää se oikein luetteloon :: sort (). Kiitos etukäteen avusta / ajasta!
EDIT: Ratkaisu oli yksinkertaisesti lisätä tämä strukturiini
bool-operaattori <(const opiskelija & cmp) const {
palautustunnus 
                                
Sinun tulisi tarkastella std :: sort. (https://fi.cppreference.com/w/cpp/algorithm/sort) Toiminnolle on useita määritelmiä, ja yksi, jossa voit määrittää, mitä haluat lajitella.
Katso myös tämä viesti, mielestäni se on mitä tarvitset: https://stackoverflow.com/a/21234017/6663947
Muokkaa:
tämä on esimerkki vertailusta:
sList.sort ([] (const opiskelija & a, const opiskelija & b) {return a.id 
void sort (Vertaa komp);
Oletetaan, että haluat lajitella opiskelijaobjektit luettelossasi avaintunnuksen mukaan nousevassa järjestyksessä. Voit joko määrittää operaattorin